package com.example.springboot.controller;

import cn.hutool.core.util.StrUtil;
import com.example.springboot.common.AuthAccess;
import com.example.springboot.common.Result;
import com.example.springboot.entity.User;
import com.example.springboot.service.UserService;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;

/**
 * 功能：提供接口返回数据
 * 作者：陈雷
 * 日期：2024/10/17 21:09
 */

@RestController
public class WebController {

    @Resource
    UserService userService;

    @AuthAccess
    @GetMapping("/")
    public Result hello(){
        return Result.success( "success");
    }


    // 用户登录
    @PostMapping("/login")
    public Result login(@RequestBody User user){
        if (StrUtil.isBlank(user.getUsername()) || StrUtil.isBlank(user.getPassword())){
            return Result.error("用户名或密码为空");
        }
        user = userService.login(user);
        return Result.success(user);

    }


    // 用户注册
    @AuthAccess
    @PostMapping("/register")
    public Result register(@RequestBody User user){
        if (StrUtil.isBlank(user.getUsername()) || StrUtil.isBlank(user.getPassword()) || StrUtil.isBlank(user.getRole())){
            return Result.error("输入不合法");
        }
        if (user.getUsername().length() > 10 || user.getPassword().length() > 10){
            return Result.error("输入不合法：账号密码长度不能大于10");
        }
        user = userService.reqister(user);
        return Result.success(user);

    }


    // 重置密码
    @AuthAccess
    @PutMapping("/password")
    public Result password(@RequestBody User user){
        if (StrUtil.isBlank(user.getUsername()) || StrUtil.isBlank(user.getPhone()) ){
            return Result.error("数据输入不合法");
        }
        userService.resetPassword(user);
        return Result.success();
    }


}